// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0

import { ChildIndicator, ResettingLineEdit } from "./basics.slint";

import { PropertyValue } from "../../api.slint";
import { EditorSpaceSettings } from "../../components/styling.slint";

export component IntegerWidget inherits GridLayout {
    in property <bool> enabled;
    in property <PropertyValue> property-value;

    callback update-display-string(value: string);

    callback test-integer-binding(text: string) -> bool;
    callback set-integer-binding(text: string);

    Row {
        childIndicator := ChildIndicator {
            horizontal-stretch: 0;
            visible: false;
        }

        ResettingLineEdit {
            enabled: root.enabled;
            horizontal-alignment: right;
            input-type: number;

            default-text: property-value.value-int;

            edited(text) => {
                self.can-compile = test-integer-binding(text);
            }
            accepted(text) => {
                root.update-display-string(text);
                root.set-integer-binding(text);
            }
        }
    }
}
